package com.aizuda.boot.modules.business.contract.entity.vo;

import com.aizuda.boot.modules.system.entity.vo.UserAvatarVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @Author sangyirong
 * @ClassName ContractShow
 * @Version 1.0
 * @Date 2025/5/20 15:05
 */
@Data
@Schema(description ="合同类型展示DTO")
@NoArgsConstructor
@AllArgsConstructor
public class ContractTypeShowDTO {

    @Schema(description = "合同类型ID")
    private Integer id;

    @Schema(description = "类型名称")
    private String typeName;

    @Schema(description = "缩写")
    private String typeAbbreviation;

    @Schema(description = "是否适用所有部门")
    private Boolean isAllDepartment;

    @Schema(description = "适用部门")
    private List<String> applicableDepartments;

    @Schema(description = "是否不适用所有部门")
    private List<String> noAllDepartment;

    @Schema(description = "不适用部门")
    private List<String> nonApplicableDepartments;

    @Schema(description = "合同类型说明")
    private String typeDescription;

    @Schema(description = "状态")
    private Boolean isEnabled;

    @Schema(description = "排序")
    private Integer typeOrder;

    @Schema(description = "子合同类型")
    private List<ContractTypeShowDTO> children;

    @Schema(description = "适用类型",examples = {"user", "department"}, required = true)
    private String applicableType;

    @Schema(description = "适用用户")
    private List<UserAvatarVO> applicableUsers;

}
